package com.wyx.utils;

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.net.URI;

public class StartBrowserUtil {
    /**
     * 使用goole浏览器打开。速度慢，但是可以操作的方法多。
     * @param url  浏览器
     */
    public static void start(String url) {
//        设置浏览器的基本参数  一些特殊的参数 就需要研究API了
        ChromeOptions options = new ChromeOptions();
        options.setBinary("E:\\soft_Wy\\google\\chrome-win64\\chrome.exe");
        System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe");
//        设置系统的 无头模式，可能是springboot 自动设置的。 现在设置回来， 否则无法
        System.setProperty("java.awt.headless", "false");
        options.addExtensions(new File("src/main/resources/xpathHelper.crx"));
        GraphicsDevice[] screens = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
        if (screens.length > 1) {
            options.addArguments("--window-position=2800,1000"); //将窗口移动到副屏的起始位置
        }
//        options.addArguments("--headless"); //使用无头模式
        ChromeDriver CHROME_DRIVER = new ChromeDriver(options);
        CHROME_DRIVER.manage().window().maximize();
        System.out.println("准备打开浏览器");
        CHROME_DRIVER.get(url);
        System.out.println("打开完成");
    }

    /**
     * 使用默认浏览器打开。速度比较快。
     * @param url
     */
    public static void start2(String url) {
        System.setProperty("java.awt.headless", "false");
        // 创建一个URI对象，表示要打开的网页
        URI uri = URI.create(url);
        // 检查Desktop是否可用，并且当前用户是否有权限打开网页
        boolean desktopSupported = Desktop.isDesktopSupported();
        boolean supported = Desktop.getDesktop().isSupported(Desktop.Action.BROWSE);
        if (desktopSupported && supported) {
            try {
                Desktop.getDesktop().browse(uri);
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("无法打开浏览器");
        }
    }
}